#include "MotorLanzadorPajaritos.h"
#include "LanzadorPajaritos.h"

using namespace TP::Juego::Motorizacion;
using namespace TP::Juego::Motorizacion::Generadores;

MotorLanzadorPajaritos::MotorLanzadorPajaritos() {
}

MotorLanzadorPajaritos::~MotorLanzadorPajaritos() {
}

Ticks MotorLanzadorPajaritos::notificacionAvanceTiempo (Ticks pTiempo) {
    for(vector<Partida*>::iterator partidasIt = _partidas.begin(); partidasIt != _partidas.end(); ++partidasIt)
    {
        for(vector<struct InfoMov *>::iterator semillasIt = (*partidasIt)->ArenaJuego()->getSemillasGeneradorPajaritos().begin();
                semillasIt != (*partidasIt)->ArenaJuego()->getSemillasGeneradorPajaritos().end(); ++semillasIt) {
            
            LanzadorPajaritos* lanzador = new LanzadorPajaritos(*(*partidasIt), *(*semillasIt));
            _lanzadores.push_back(lanzador);
            
            lanzador->Iniciar();
    }
}
    
    for(vector<LanzadorPajaritos*>::iterator lanzadoresIt = _lanzadores.begin(); lanzadoresIt != _lanzadores.end(); ++lanzadoresIt) {
        if((*lanzadoresIt)->lanzados()) {
            delete (*lanzadoresIt);
            lanzadoresIt =_lanzadores.erase(lanzadoresIt);
        };
    }
}
    
Partida* MotorLanzadorPajaritos::correrPartida (Partida* pPartida) {
     if (pPartida)
        this->_partidas.push_back(pPartida);
}

vector<Partida*>& MotorLanzadorPajaritos::getPartidas() {
    return this->_partidas;
}